home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Missions / Mission_4 / Mission.script < prev    next >
Text File  |  2002-01-30  |  7KB  |  246 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CDestroyGuardedTarget extends
  11.   CBaseMission, CDestroyGuardedTargetObjectList, CDestroyGuardedTarget_Strings, CNavPointUser
  12. {
  13.   int GetAutoGeneratedUnitsQty()
  14.   {
  15.     return 6;
  16.   }
  17.  
  18.   void CDestroyGuardedTarget()
  19.   {
  20.     BaseMission_InitMission();
  21.  
  22.     BaseMission_UpdateLoadProgress();
  23.     CreateComponent("DebugCamera", "GameObject", "CDebugCamera");
  24.     SetComponentPosition("DebugCamera",
  25.       matrix(
  26.         1.0, 0.0, 0.0, 8000.0,
  27.         0.0, 1.0, 0.0, 8000.0,
  28.         0.0, 0.0, 1.0,  600.0,
  29.         0.0, 0.0, 0.0,    1.0
  30.       ));
  31.  
  32.     // CreateComponent(IDToRegister, ComponentID, ScriptName | FileName | "")
  33.     BaseMission_UpdateLoadProgress();
  34.     CreateComponent("Atmosphere", "Atmosphere", "CDestroyGuardedTarget_Atmosphere");
  35.  
  36.     BaseMission_UpdateLoadProgress();
  37.     CreateComponent("Sky", "SkyObject", "CDestroyGuardedTarget_Sky");
  38.  
  39.     BaseMission_UpdateLoadProgress();
  40.     CreateComponent("Terrain", "ProgressiveTerrainObject", "CDestroyGuardedTarget_Terrain");
  41.  
  42.     BaseMission_UpdateLoadProgress();
  43.     CreateComponent("Forest", "Forest", "CDestroyGuardedTarget_Forest");
  44.  
  45.     BaseMission_UpdateLoadProgress();
  46.     CreateComponent("AIController", "AIController", "CDestroyGuardedTarget_AIController");
  47.  
  48.     BaseMission_CreateObjects();
  49.  
  50.    // West Cargo direction
  51.    SetBehaviorGroupRank( "CargoWest_01", "CargoWest_Rank", 1);
  52.    SetBehaviorGroupRank( "CargoWest_02", "CargoWest_Rank", 2);
  53.    SetBehaviorGroupRank( "CargoWest_03", "CargoWest_Rank", 3);
  54.  
  55.    // Sude Cargo direction
  56.    SetBehaviorGroupRank( "CargoSude_01", "CargoSude_Rank", 1);
  57.    SetBehaviorGroupRank( "CargoSude_02", "CargoSude_Rank", 2);
  58.    SetBehaviorGroupRank( "CargoSude_03", "CargoSude_Rank", 3);
  59.  
  60.    // Nord Cargo direction
  61.    SetBehaviorGroupRank( "CargoNord_01", "CargoNord_Rank", 1);
  62.    SetBehaviorGroupRank( "CargoNord_02", "CargoNord_Rank", 2);
  63.    SetBehaviorGroupRank( "CargoNord_03", "CargoNord_Rank", 3);
  64.  
  65.     //
  66.     //  Mission specific
  67.     //
  68.  
  69.     // count how many 1st and 2nd objectives' objects are in the mission
  70.     array m_Objects = GetObjectsIDs();
  71.  
  72.     m_HousesCount  = 0;
  73.     m_CargoCount   = 0;
  74.     m_CargoToKill  = 9;
  75.     m_EnemiesCount = 0;
  76.     m_EnemiesDestroyed = 0;
  77.  
  78.     for (int i = 0; i < m_Objects.size(); i = i + 1)
  79.     {
  80.       if (Core_IsStringStartsWith(m_Objects[i], "TargetHouse"))
  81.         m_HousesCount = m_HousesCount + 1;
  82.  
  83.       if (Core_IsStringStartsWith(m_Objects[i], "Nazi"))
  84.         m_EnemiesCount = m_EnemiesCount + 1;
  85.  
  86. //      if (Core_IsStringStartsWith(m_Objects[i], "Cargo"))
  87. //        m_CargoToKill = m_CargoToKill + 1;
  88.     }
  89. //    Core_LogMessage("Defender to kill: "+m_EnemiesCount+". Cargo to kill: "+m_CargoToKill);
  90.   }
  91.  
  92.   int  m_HousesCount;
  93.   int  m_EnemiesCount;
  94.   int  m_EnemiesDestroyed;
  95.  
  96.   int  m_CargoCount  = 0;
  97.   int  m_CargoToKill = 9;
  98.  
  99.   int  OBJECTIVE_HQ                 = 0;
  100.   int  OBJECTIVE_CARGO              = 1;
  101.   int  OBJECTIVE_ALL_ENEMIES        = 0;
  102.  
  103.   array m_MissionObjectivesStatuses =
  104.           array(
  105.             str_ObjectiveInProgress,
  106.             str_ObjectiveInProgress
  107.           );
  108.  
  109.   array m_BonusMissionObjectivesStatuses =
  110.           array(
  111.             str_ObjectiveInProgress
  112.           );
  113.  
  114.   //
  115.   //  'virtual' methods
  116.   //
  117.  
  118.   //
  119.   //  Mission statistics
  120.  
  121.   string GetMissionStatistics()
  122.   {
  123.     return str_StatisticsTitle + m_EnemiesDestroyed;
  124.   }
  125.  
  126.   //
  127.   //  Mission navpoints
  128.  
  129.   array GetNavPoints()
  130.   {
  131.     array navpoints =
  132.       array(
  133. //        vector(11430.0, 4720.0, 600.0)
  134.           GetNavPoint("NavPoint_1")
  135.       );
  136.     return navpoints;
  137.   }
  138.  
  139.   //
  140.   //  Mission map skin file
  141.  
  142.   string GetMapSkinFileName()
  143.   {
  144.     return "Missions/Mission_4/Map.skin";
  145.   }
  146.  
  147.   //
  148.   //  Mission specific event handlers
  149.   //
  150.  
  151.   //
  152.   //  Object destroyed event handler
  153.   //
  154.  
  155.   void OnGameObjectDestroyed(string _id)
  156.   {
  157.     BaseMission_OnGameObjectDestroyed(_id);
  158.  
  159.     if (Core_IsStringStartsWith(_id, "Nazi"))
  160.     {
  161.       m_EnemiesCount = m_EnemiesCount - 1;
  162.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  163. //      Core_LogMessage("Defender has been killed. Defenders left: "+m_EnemiesCount);
  164.     }
  165.  
  166.     if (Core_IsStringStartsWith(_id, "Field"))
  167.      {
  168.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  169.      }
  170.  
  171.     if (Core_IsStringStartsWith(_id, "NaziPatrol"))
  172.      {
  173.       Core_BroadcastEvent("StartRunFromBase");
  174.      }
  175.  
  176.     if (Core_IsStringStartsWith(_id, "TargetHouse"))
  177.     {
  178.       m_HousesCount = m_HousesCount - 1;
  179.       Core_BroadcastEvent("StartRunFromBase");
  180.  
  181.       if (m_HousesCount > 0)
  182.       {
  183.         string message = str_MessageTitle + m_HousesCount;
  184.  
  185.         Core_BroadcastEvent(
  186.           "OnDisplayMessage",
  187.           message,
  188.           m_GoodNewsColor
  189.         );
  190.       }
  191.     }
  192.  
  193.     if (Core_IsStringStartsWith(_id, "Cargo"))
  194.     {
  195.       m_CargoCount = m_CargoCount + 1;
  196.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  197. //      Core_LogMessage(" Cargo has killed, Name: "+_id+". Current Count is: "+m_CargoCount+". Need to kill: "+m_CargoToKill);
  198.     }
  199.  
  200.     // check for bonus objective completion
  201.     if (m_EnemiesCount == 0)
  202.       BaseMission_CompleteBonusObjective(OBJECTIVE_ALL_ENEMIES);
  203.  
  204.     // check for main objective
  205.     if (m_HousesCount == 0)
  206.     {
  207.       BaseMission_CompleteObjective(OBJECTIVE_HQ);
  208.     }
  209.  
  210.     // check for main objective
  211.     if (m_CargoCount >= m_CargoToKill)
  212.     {
  213. //      Core_LogMessage("Objective complete");
  214.       BaseMission_CompleteObjective(OBJECTIVE_CARGO);
  215.     }
  216.  
  217.   }
  218.  
  219.   void OnMissionLoaded()
  220.   {
  221.     Core_SendEventTo("Helicopter", "OnInitiallyEnableTargetScreen", false);
  222.  
  223.     // Start mission music playing
  224.     Core_SendEventTo(SOID_MusicController, "PlayMissionMusic", 4);
  225.   }
  226.  
  227.   void WestCargoArrive()
  228.     {
  229.       BaseMission_FailObjective(OBJECTIVE_CARGO);
  230. //      BaseMission_DelayedQuit();
  231.     }
  232.  
  233.   void SudeCargoArrive()
  234.     {
  235.       BaseMission_FailObjective(OBJECTIVE_CARGO);
  236. //      BaseMission_DelayedQuit();
  237.     }
  238.  
  239.   void NordCargoArrive()
  240.     {
  241.       BaseMission_FailObjective(OBJECTIVE_CARGO);
  242. //      BaseMission_DelayedQuit();
  243.     }
  244.  
  245. }
  246.